#include <iostream>
#include <stack>
#include <string>
#include <unordered_map>

bool is_valid_brackets(const std::string& a) {
    std::stack<char> stack;
    std::unordered_map<char, char> brackets = {{'(', ')'}, {'[', ']'}, {'{', '}'}, {'<', '>'}};

    for (char i : a) {
        if (brackets.count(i)) {
            stack.push(i);
        } else {
            if (stack.empty()) {
                return false;
            }
            char c = stack.top();
            stack.pop();
            if (i != brackets[c]) {
                return false;
            }
        }
    }
    return stack.empty();
}

int main() {
    std::string input_a;
    std::cout << "Введите cкобочную последовательность: ";
    std::cin >> input_a;
    bool result = is_valid_brackets(input_a);
    std::cout << (result ? "true" : "false") << std::endl;
    return 0;
}

